package estructurasDeDatos.HashMap2;

import estructurasDeDatos.IHashElement;
import estructurasDeDatos.IIterator2;
import estructurasDeDatos.List2.ListElement;

public class HashMapIterator< K , V > implements IIterator2<K, V> {

	private HashMapElement<K, V> actual ; 
	
	public HashMapIterator( HashMapElement< K , V> start){
		actual = start ;
	}
	
	@Override
	public V getNext() {
		V res = actual.getValue() ; 
		actual = actual.getSiguiente();
		return res ; 
	}

	/**
	 * Asigna la posicion actual del iterador
	 * @param act elemento que define la nueva posicion del iterador
	 */
	public void setActual ( HashMapElement< K , V > act ) { 
		actual = act ;
	}
	
	
	@Override
	public IHashElement<K, V> getNextElement() {
		HashMapElement< K , V > res = actual ; 
		actual = actual.getSiguiente();
		return res ; 
	}

	@Override
	public boolean hasNext() {
		if ( actual != null) 
			return true ; 
		return false;
	} 
	

}
